<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <script>
            // 防抖：在一段时间内，不断触发事件，只执行最后一次
            // 防抖函数
            // 1. lodash 防抖函数
            // 2. 利用setTimeout实现
            function debounce(fn, delay) {
                // 由于闭包，timer只创建一次，但是始终不会销毁
                let timer = null;
                return function() {
                    if (timer) {
                        clearTimeout(timer);
                    }
                    timer = setTimeout(
                        () => {
                            fn.apply(this, arguments);
                        }
                            , delay);
                }
            }
        </script>
    
    </body>
</html>